// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.google.zxing.oned; import com.google.zxing.BarcodeFormat; import com.google.zxing.NotFoundException; import com.google.zxing.common.BitArray; // Referenced classes of package com.google.zxing.oned: // UPCEANReader public final class UPCEReader extends UPCEANReader { private static final int a[] = { 1, 1, 1, 1, 1, 1 }; private static final int f[][] = { { 56, 52, 50, 49, 44, 38, 35, 42, 41, 37 }, { 7, 11, 13, 14, 19, 25, 28, 21, 22, 26 } }; private final int g[] = new int[4]; public UPCEReader() { } private static void a(StringBuilder stringbuilder, int i) { for (int j = 0; j <= 1; j++) { for (int k = 0; k < 10; k++) { if (i == f[j][k]) { stringbuilder.insert(0, (char)(j + 48)); stringbuilder.append((char)(k + 48)); return; } } } throw NotFoundException.getNotFoundInstance(); } public static String convertUPCEtoUPCA(String s) { char ac[]; StringBuilder stringbuilder; char c; ac = new char[6]; s.getChars(1, 7, ac, 0); stringbuilder = new StringBuilder(12); stringbuilder.append(s.charAt(0)); c = ac[5]; c; JVM INSTR tableswitch 48 52: default 76 // 48 114 // 49 114 // 50 114 // 51 147 // 52 173; goto _L1 _L2 _L2 _L2 _L3 _L4 _L1: stringbuilder.append(ac, 0, 5); stringbuilder.append("0000"); stringbuilder.append(c); _L6: stringbuilder.append(s.charAt(7)); return stringbuilder.toString(); _L2: stringbuilder.append(ac, 0, 2); stringbuilder.append(c); stringbuilder.append("0000"); stringbuilder.append(ac, 2, 3); continue; /* Loop/switch isn't completed */ _L3: stringbuilder.append(ac, 0, 3); stringbuilder.append("00000"); stringbuilder.append(ac, 3, 2); continue; /* Loop/switch isn't completed */ _L4: stringbuilder.append(ac, 0, 4); stringbuilder.append("00000"); stringbuilder.append(ac[4]); if (true) goto _L6; else goto _L5 _L5: } BarcodeFormat a() { return BarcodeFormat.UPC_E; } protected boolean checkChecksum(String s) { return super.checkChecksum(convertUPCEtoUPCA(s)); } protected int[] decodeEnd(BitArray bitarray, int i) { return a(bitarray, i, true, a); } protected int decodeMiddle(BitArray bitarray, int ai[], StringBuilder stringbuilder) { int ai1[] = g; ai1[0] = 0; ai1[1] = 0; ai1[2] = 0; ai1[3] = 0; int i = bitarray.getSize(); int j = ai[1]; int k = 0; int l = 0; int k1; for (; k < 6 && j < i; j = k1) { int i1 = a(bitarray, ai1, j, e); stringbuilder.append((char)(48 + i1 % 10)); int j1 = ai1.length; k1 = j; for (int l1 = 0; l1 < j1; l1++) { k1 += ai1[l1]; } if (i1 >= 10) { l |= 1 << 5 - k; } k++; } a(stringbuilder, l); return j; } }